 //import Count from '../../components/count/Count'
 //映入react-redux的connect
 import {connect} from 'react-redux'
 import {createIncrementAction,createDecrementAction,createIncrementAsyncAction} from '../../redux/count_action'

 import React, { Component } from 'react'
 class Count extends Component {
 
 
	 //加法
	 increment = ()=>{
		 const {value} = this.selectNumber
		 this.props.jia(value*1)
		 
	 }
	 //减法
	 decrement = ()=>{
		 const {value} = this.selectNumber
		 this.props.jian(value*1)
	 }
	 //奇数再加
	 incrementIfOdd = ()=>{
		 const {value} = this.selectNumber
		 if(this.props.count % 2 !== 0){
			 this.props.jia(value*1)
		 }
	 }
	 //异步加
	 incrementAsync = ()=>{
		 const {value} = this.selectNumber
		 this.props.jiaAsync(value*1,500)
	 }
 
	 render() {
		 console.log(this.props.count)
		 return (
			 <div>
				 <h1>当前求和为：{this.props.count}</h1>
				 <select ref={c => this.selectNumber = c}>
					 <option value="1">1</option>
					 <option value="2">2</option>
					 <option value="3">3</option>
				 </select>&nbsp;
				 <button onClick={this.increment}>+</button>&nbsp;
				 <button onClick={this.decrement}>-</button>&nbsp;
				 <button onClick={this.incrementIfOdd}>当前求和为奇数再加</button>&nbsp;
				 <button onClick={this.incrementAsync}>异步加</button>&nbsp;
			 </div>
		 )
	 }
 }


 //App已经给容器组件了接受即可
 /* 
	1.mapStateToProps函数返回的是一个对象；
	2.返回的对象中的key就作为传递给UI组件props的key,value就作为传递给UI组件props的value
	3.mapStateToProps用于传递状态
*/
//映射状态
// const mapStateToProps = state=>({count:state})
 
 /* 
	1.mapDispatchToProps函数返回的是一个对象；
	2.返回的对象中的key就作为传递给UI组件props的key,value就作为传递给UI组件props的value
	3.mapDispatchToProps用于传递操作状态的方法
*/
//映射操作状态
//  const mapDispatchToProps=dispatch=>({
     
//         jia:number => dispatch(createIncrementAction(number)),
// 		jian:number => dispatch(createDecrementAction(number)),
// 		jiaAsync:(number,time) => dispatch(createIncrementAsyncAction(number,time)),
     

// })
 //使用react-redux 创建connect()()
 export default connect(state=>({count:state}),
 //mapDispatchToProps简写
 {
     jia:createIncrementAction,
     jian:createDecrementAction,
     jiaAsync:createIncrementAsyncAction
 }
//  dispatch=>({
//     jia:number => dispatch(createIncrementAction(number)),
//     jian:number => dispatch(createDecrementAction(number)),
//     jiaAsync:(number,time) => dispatch(createIncrementAsyncAction(number,time)),
//  })
)(Count)
  
